-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compatibility change for go 1.18 #2317
Conversation
The version in |
It was changed to 1.19 in 9ae51c1, and at that time 1.18 was still supported. I'm unsure how to deal with it but should be irrelevant to this PR IMHO.
The reason is two-fold:
|
The version in go.mod specifies the minimum version to use. For normative reasons, this field should be changed if support for Go 1.18 is to be maintained.
|
Codecov ReportBase: 39.19% // Head: 39.16% // Decreases project coverage by
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more Additional details and impacted files@@ Coverage Diff @@
## master #2317 +/- ##
==========================================
- Coverage 39.19% 39.16% -0.03%
==========================================
Files 617 617
Lines 36859 36859
==========================================
- Hits 14448 14437 -11
- Misses 20821 20828 +7
- Partials 1590 1594 +4
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
|
This is how Xray deal with the issue XTLS/Xray-core@00c9576, but I'm wondering if it'll silently break stuff if qtls changes them in the future. I'm personally open to both solutions. |
@AkinoKaede Any updates? Which solution is preferred? |
My concern is that V2Ray may not support Go 1.18 in the long term. quic-go will stop supporting Go 1.18 when Go 1.21 is released, as a rule. |
c.c. @xiaokangwang |
I agree that QUIC is problematic, but I think we could not keep the compatibility with a certain version of Go tool chain indefinitely. Is there anything preventing this change from being send to OpenWRT's distro repo, which is prefer for this kind of distro specific changes? |
Of course, it's infeasible to keep compatibility with go 1.18 forever. However, I think it's fair to add the compatibility for now at least considering the trivial extra effort. Besides, v2ray itself is buildable with go 1.18 but a dependence (QUIC). It's more reasonable to drop support for old go releases when v2ray strictly relies on features from new go releases.
Yes and no. For building v2ray itself we can simply patch it. But for packages using v2ray as a go dependence (e.g. https://github.com/teddysun/v2ray-plugin/blob/b06bccfb77fd7f1fad4769302e47967ad7dbd8d7/go.mod#L7), I'm not aware of any built-in mechanism to patch it. |
I think it is fine to merge this and buy OpenWRT more time to deal with their slow update issue and make things easier for you. It should be remembered that this is a temporary measure, and will not be kept indefinitely. I don't think it is possible to get rid of QUIC now with selective compile since it is imported by app/dns, so we will have to drop support for go 1.18 when QUIC stop support it. |
Rebased just now to resolve conflicts.
22.03 and upwards have migrated to newer golang releases so ig 21.02 will stay 1.18 forever. Nonetheless, support for 21.02 will be dropped soon after 23.xx release this year, so this "temporary" change should be sufficient before 21.02 eol. |
|
:( |
No description provided.